1. Field of the Invention
The present invention relates to systems and methods of generating a series of character strings, and in particular to a method and system for systematically generating a series of character strings from the systematic application of a rule set to a template.
2. Description of the Related Art
Frequently, in testing computer software products, the need arises to create many ordered sequences of character strings; each based on a specified theme. Such ordered sequences can be used in a program to test the operation of functional attributes in the software product. The desired sequences are variations of the sequence theme, which are unique in specific, non-random, and non-trivial ways and are produced according to a first-to-last ordering. Manually producing such sequences can be extremely time-consuming.
Manually producing such sequences is a time-consuming and error-prone process. Automated test case generators have been developed which reduce the time to create test case sequences and reduce the chances of error. These automated test case generators include random test case generators and rule-based test case generators.
Random test case generators can be effective, but are limited in usefulness. Random generators do not allow control over the order in which the test cases are generated, nor do they allow control over the specific contents of each test case.
Rule-based test case generators have similar limitations. Many rule-based generators will produce only a specific type of test case (for example, program generators typically do not generate data I/O data records). Other rule-based test case generators can generate test cases only in a specific programming language. Current rule-based generation systems are deficient in one or more of the following ways: template specification (many do not provide for the specification of a template), allowing non-terminal strings to be produced (many do not allow non-terminal strings to be produced where a non-terminal string, if input to the method, would be further transformed), or output strings re-input to the generator (abstraction ability). Abstraction ability is desirable, since it allows for the generation of potentially many templates and rules from a single template and set of rules.
What is needed is a system for efficiently generating a sequence of character stings in a versatile, systematic and predictable way. The present invention satisfies that need.